#pragma once
#include "file_dir.hpp"

class dir_ctl
{
private:
    std::unordered_map<std::string, file_dir> _total_dir;

public:
    bool create_dir(std::string dirname)
    {
        auto it = _total_dir.find(dirname);
        if (it != _total_dir.end())
        {
            debug_log("目录已经存在");
            return false;
        }

        auto ret = _total_dir.insert(make_pair(dirname, file_dir(dirname)));
        if (!ret.second)
        {
            error_log("主目录插入错误");
            return false;
        }

        return true;
    }

    bool delete_dir(std::string dirname)
    {
        auto it = _total_dir.find(dirname);
        if (it == _total_dir.end())
        {
            debug_log("目录不存在");
            return false;
        }

        auto ret = _total_dir.erase(dirname);
        if (ret != 1)
        {
            error_log("目录删除失败");
            return false;
        }

        return true;
    }

    file_dir *get_fir(std::string dirname)
    {
        auto it = _total_dir.find(dirname);
        if (it == _total_dir.end())
        {
            debug_log("目录不存在");
            return nullptr;
        }
        return &it->second;
    }

    void show_dir()
    {
        for (auto &e : _total_dir)
        {
            std::cout << e.first << std::endl;
        }
    }

    
};

// class dir_ctl
// {
// private:
//     std::unordered_map<std::string, std::string> _total_dir;

// public:
//     bool create_dir(std::string dirname)
//     {
//         auto it = _total_dir.find(dirname);
//         if(it != _total_dir.end())
//         {
//             debug_log("目录已经存在");
//             return false;
//         }

//         auto ret = _total_dir.insert(make_pair(dirname,"helo"));
//         if(!ret.second)
//         {
//             error_log("主目录插入错误");
//             return false;
//         }

//         return true;
//     }

//     bool delete_dir(std::string dirname)
//     {
//         auto it = _total_dir.find(dirname);
//         if(it == _total_dir.end())
//         {
//             debug_log("目录不存在");
//             return false;
//         }

//         auto ret = _total_dir.erase(dirname);
//         if(ret != 1)
//         {
//             error_log("目录删除失败");
//             return false;
//         }

//         return true;
//     }

// };